Blog

Importance of Var Scoping

Luis Majano September 24, 2010

Spread the word

Luis Majano

September 24, 2010

Spread the word


Share your thoughts

I can honestly say that there are always requests on the ColdBox lists or work that say, "Hey the application is taking my server memory, why does ColdBox do that!".  First of all, the ColdBox platform when placed in memory is less than 1kb of memory.  The rest that gets loaded into an application is because of your application code.  Second, the biggest culprit is the misuse or the not using of var scoped variables in event handlers or domain objects.

This is KEY!  Event handlers in ColdBox are cached by default so no unnecessary object creations occur.  Therefore, your code within the event handler functions MUST be thread safe and var scoped.  This is essential and key for ANY framework or ANY ColdFusion Component declaration, ALWAYS ALWAYS var scope.  I cannot stress the importance of having to var scope your ColdFusion component method calls.  I see this time and time again and we need to educated ourselves about it and also create a habit of ALWAYS var scoping our variables within function declarations.  What do you think?

Add Your Comment

(3)

Sep 30, 2010 10:28:54 UTC

by Allen

Not to be trite but the var keyword is a keyword, not a scope. Most of know that but I'd hate to see a newbie get confused.

Do you have some example code for a handler or controller that would help illustrate this?

And is there any reason if we're running CF9 why we shouldn't use the local scope in these situations?

TIA!

Sep 30, 2010 10:35:10 UTC

by Luis Majano

@Allen,

In cf9 you don't have to var scope if you use the local scope as that puts the variables in the local function scope. To me that is a matter of preference, like what color you like? They both achieve the same results.

Some example handler code of NOT var scoping:

function doThis(event){ rc = event.getCollection();

rc.data = service.getData(); }

Recent Entries

Introducing bx-jwt: Enterprise-Grade JSON Web Tokens for BoxLang 🔐

Introducing bx-jwt: Enterprise-Grade JSON Web Tokens for BoxLang 🔐

JWT authentication is everywhere. But rolling it correctly — with proper algorithm enforcement, key management, clock skew handling, JWE encryption, and zero security footguns — is anything but trivial. Today, we're shipping bx-jwt, a production-ready JWT/JWE module for BoxLang that handles all of it out of the box, so you can focus on building, not fighting cryptography.

Luis Majano
Luis Majano
May 22, 2026
What “Modernize or Die” Really Means in 2026

What “Modernize or Die” Really Means in 2026

“Modernize or Die” is not about forcing teams into MVC, chasing trends, or rewriting every CFML application from scratch. It means making sure your applications, teams, and processes can survive the future: easier to maintain, test, secure, deploy, document, hire for, and evolve. In 2026, modernization is less about adopting the newest pattern and more about reducing business risk, protecting the value already built into your systems, and ensuring CFML applications remain credible, sustai...

Cristobal Escobar
Cristobal Escobar
May 22, 2026